package cn.antblog.jdk8.optional;

import java.util.Optional;

public class OptionalTest {
    public static void main(String[] args) {
        OptionalTest optionalTest = new OptionalTest();
        Integer val1= null;
        Integer val2 = new Integer(10);
        // Optional.ofNullable - 允许传递为 null 参数
        Optional<Integer> a = Optional.ofNullable(val1);
        // Optional.of - 如果传递的参数是 null，抛出异常 NullPointerException
        Optional<Integer> b = Optional.of(val2);
        System.out.println(optionalTest.sum(a,b));
    }

    public Integer sum(Optional<Integer> a,Optional<Integer> b){
        // Optional.isPresent - 判断值是否存在
        System.out.println("第一个参数值存在："+a.isPresent());
        System.out.println("第二个参数值存在："+b.isPresent());

        //optional.orElse - 如果值存在，返回它，否则返回默认值
        Integer integer = a.orElse(new Integer(0));

        ////Optional.get - 获取值，值需要存在
        Integer integer1 = b.get();
        return integer+integer1;
    }
}
